#include "labsync.h"
#include "ui_labsync.h"

LabSync::LabSync(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::LabSync)
{
    ui->setupUi(this);
    //Commiter1.keyring_load();
    //ui->Log->append(lang_m0 + '"' + Commiter1.getDataBaseUserName()->toAscii().data() + '"');

    /*QStringList TEST;
    TEST.append(QString::fromUtf8("Якщо буде докучати..."));
    TEST.append(QString::fromUtf8("То у конструкторі LabSync рядки 12-17..."));
    TEST.append(QString::fromUtf8("Це зразок використання функції повідомлення про зміну ФС"));
    int sms = Commiter1.showFileSystemWarnings(TEST,1,2);
    ui->Log->append(QString::fromUtf8("Відповідь користувача на запит про зміни ФС: ") + QString::number(sms));*/
}

LabSync::~LabSync()
{
    delete ui;
}

void LabSync::on_actionQuit_triggered()
{
    QWidget::close();
}

void LabSync::on_actionSelect_Root_Dir_triggered()
{
    Commiter1.SelectDir(this,ui->TreeViewLocal,ui->Log,0);
    //Commiter1.buildFileList(sourceFileList,0);
    //Commiter1.printFileList(sourceFileList,ui->Log);
}

void LabSync::on_actionClear_auth_data_triggered()
{
    Commiter1.keyring_erase();
    QWidget::close();
}
/*
  Запит ІР адреси у користувача
*/
void LabSync::on_actionInput_IP_triggered()
{
    QString IP = Denis::ip_dialog();
    if (Denis::ip_check(IP))
    {
        ui->Log->append(ip_good + IP);
    }
    else
    {
        ui->Log->append(ip_bad);
    }
}

void LabSync::on_action_tmp_triggered()
{
    Commiter1.SelectDir(this,ui->TreeViewRemoute,ui->Log,1);
    //Commiter1.buildFileList(destinationFileList,1);
    //Commiter1.printFileList(destinationFileList,ui->Log);
}

void LabSync::on_toolButton_clicked()
{
    QStringList inputFileList;
    QStringList roots;

    Commiter1.buildFileList(sourceFileList,0);
    Commiter1.buildFileList(destinationFileList,1);

    sync.setSourceTreeView(ui->TreeViewLocal);
    sync.setDestinationTreeView(ui->TreeViewRemoute);
    sync.setLogTextEdit(ui->Log);
    roots.append(Commiter1.getRootDirPath(0)->toAscii());
    roots.append(Commiter1.getRootDirPath(1)->toAscii());
    sync.compare(roots, sourceFileList, destinationFileList, inputFileList);
    int ret = Commiter1.showFileSystemWarnings(inputFileList, -1, -1);
    if (ret == 1) {
        Commiter1.ApplyChangesToFileSystem(roots, inputFileList, -1, -1);
    }
}

